<?php

namespace App\Http\Controllers\home;

use Illuminate\Http\Request;
use Hash;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class LoginController extends Controller
{
    //进行遍历类别
    static public function getCate($pid){
        //定义一个空数组
        $cate=array();
        //通过传过来的pid查询类别表
        $data=DB::table('cate')->where('pid','=',$pid)->get();
        //遍历查询到的数据
        foreach($data as $k=>$v){
            //通过自身的id去掉用自身的方法(通过pid查询) 判断下面是否还存在子分类 如果有就把他压入自身的一个下标中
            $v['fenlei']=self::getCate($v['cid']);
            //将每次得到的数据遍历到空数组中
            $cate[]=$v;
        }
         return $cate;
    } 
    //显示模板
    public function getLayout(){
        return view('/home/layout/layout');
    }
    //显示登录页
   public function getIndex(){
        return view('/home/login/index');
   }
   //进行登录操作
   public function postLogin(Request $request){
        $data=$request->except('_token');
        // dd($data);
        $info=DB::table('home_user')->where('h_uname','=',$data['h_uname'])->first();
        // dd($info);
        //验证用户名是否正确
        if(empty($request->input('h_uname'))){
            $request->flashExcept('h_uname');
            return back()->with('uerror','用户名不能为空');

        }
        if(!($info)){
            $request->flashExcept('h_uname');
            return back()->with('uerror','用户名不存在');
        }

        //验证密码是否正确
        if(empty($request->input('h_upassword'))){
            $request->flashExcept('h_upassword');
            return back()->with('perror','密码不能为空');

        }
        if(!(Hash::check($data['h_upassword'],$info['h_upassword']))) {
            $request->flashExcept('h_upassword');
            return back()->with('perror','密码错误');
        }

        //将验证码小写
        $code=strtolower(session('code'));

        // dd($code);
        $data['code']=strtolower($data['code']);

        if(!($data['code']==$code)){
            $request->flashExcept('code');
            return back()->with('cerror','验证码输入错误');
        }
        //验证成功后 将所有的数据存到session中
        session(['h_user'=>$info]);

        //把登录时间写入数据库
        $nowtime=date('Y-m-d H:i:s',time());
        DB::table('home_user')->where('h_uid',$info['h_uid'])->update(['h_utime'=>$nowtime]);
        
        //练习两表联查
        $qwe=DB::table('home_user')->join('order','home_user.h_uid','=','order.h_uid')->get();
        // dd($qwe);
        //跳转到主页面
        return redirect('/home/index/index');

   }
   //退出时的操作
   public function getOut(Request $request){
    //清除所有session
    $h_uid=$request->input('h_uid');
    $lastTime=date('d',time());

    DB::table('home_user')->where('h_uid',$h_uid)->update(['lastTime'=>$lastTime]);
    // dd($res);
    session()->pull('h_user');

    //跳转至登录页
    return redirect('/home/login/index');
   }

   //签到操作
   public function getQiandao(Request $request){
    $h_uid=$request->input('h_uid');
    $res=DB::table('home_user')->where('h_uid',$h_uid)->increment("h_ujifen",50);
    DB::table('home_user')->where('h_uid',$h_uid)->update(['lastTime'=>date('d')]); 

    session(['h_user.lastTime'=>date('d')]);
    // dd(session()->all());
    return redirect('/home/index/index');
   }
}
